As computing develops, it becomes more resource and infrastructure intensive. Processing speeds are increasing, but demands for high-volume, shared storage, access to computing resources in diverse locations, and better security are also increasing. Many users have turned away from traditional desktop computing to more sophisticated desktop virtualization technologies (e.g., remotely hosted desktops, Desktop-as-a-Service (DAAS), virtual desktop infrastructure (VDI), etc.) connected to resources by way of the cloud. Desktop virtualization technologies allow users to create individual virtual desktop sessions on demand, with each session connecting a user to a virtual desktop session which appears to the user the same as a traditional desktop computing session. During the virtual desktop session, the user uses a terminal or a client device to log into their desktop that is running on a remote server and is presented with all of the applications, documents, and other resources as though the user had logged into a traditional desktop computer. User-specific preferences and settings are stored, and the experience is the same regardless of the user's location. The virtual desktop session provides the flexibility the user needs, with the traditional format that the user is comfortable with. However, provisioning a virtual desktop session on-demand for a user presents challenges to applications which were not designed with the advanced virtual desktop environment in mind. Some of these applications experience errors when executed in an on-demand virtual desktop environment.
Some existing systems provision virtual desktops for application delivery. However, on-demand layering construction of virtual desktops lacks compatibility with certain classes of applications such as those which have service or driver components that must be started much earlier in the desktop lifecycle, such as before users log in. These classes of applications may fail to load properly, or return errors upon execution, causing the user and administrators to conclude that the virtual desktop session is inconsistent and unreliable. These experiences cause administrators to take a conservative and more expensive approach with virtual desktop environment design, allocating a complete ‘full clone’ to each user. Administrators in these examples provide each user with a persistent desktop so that full application compatibility may be guaranteed. This approach, however, adds extra cost and is inefficient.